package cn.com.dcsgo.mapper;

import cn.com.dcsgo.pojo.Employee;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * EmployeeMapper
 *
 * @author Dcsgo
 * @since 2025/2/19 20:25
 */

public interface EmployeeMapper {
    /**
     * 根据id查询员工信息
     *
     * @param id id
     * @return Employee
     */
    Employee queryById(Integer id);

    /**
     * 根据id删除员工信息
     *
     * @param id id
     * @return 受影响的行数(DML都是返回受影响的行数 insert update delete)
     */
    int removeById(Integer id);

    /**
     * 根据姓名查询员工信息
     *
     * @param name name
     * @return List<Employee>
     */
    List<Employee> queryByName(String name);

    /**
     * 添加一个员工信息
     *
     * @param employee Employee
     * @return 受影响的行数
     */
    int addOne(Employee employee);

    /**
     * 更新员工工资
     *
     * @param id     id
     * @param salary 工资
     * @return 受影响的行数
     */
    int updateSalaryById(@Param("id") Integer id, @Param("salary") Double salary);

    /**
     * 根据工资范围查询员工信息
     *
     * @param map map
     * @return List<Employee>
     */
    List<Employee> querySalaryByCriticalMap(Map<String, Double> map);
}
